package com.example.csmall.product.service;

import com.example.csmall.product.pojo.dto.AttributeTemplateUpdateDTO;
import com.example.csmall.product.pojo.dto.BrandAddNewDTO;
import com.example.csmall.product.pojo.dto.BrandUpdateDTO;
import com.example.csmall.product.pojo.vo.AttributeTemplateListItemVO;
import com.example.csmall.product.pojo.vo.AttributeTemplateStandardVO;
import com.example.csmall.product.pojo.vo.BrandListItemVO;
import com.example.csmall.product.pojo.vo.BrandStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface BrandService {

    String[] ENABLE_TEXT={"禁用","启用"};

    /**
     * 添加品牌信息
     * @param brandAddNewDTO
     */
    void addNew(BrandAddNewDTO brandAddNewDTO);

    /**
     * 根据id删除属性模板
     * @param id
     * @return
     */
    void delete(Long id);

    /**
     * 根据id修改表中信息
     * @param id
     * @param brandUpdateDTO
     */
    void updateInfoById(Long id, BrandUpdateDTO brandUpdateDTO);

    /**
     * 启用品牌
     * @param id 需要修改的分类ID
     */
    void setEnable(Long id);

    /**
     * 禁用品牌
     * @param id
     */
    void setDisable(Long id);

    /**
     * 属性模板列表
     * @return
     */
    List<BrandListItemVO> list();

    /**
     * 重建缓存
     */
    void rebuildCache();

    /**
     * 根据id查询属性模板详情
     * @param id
     * @return
     */
    BrandStandardVO getStandardById(Long id);

}
